package config

import "sync"

type Config struct {
	DataDir          string // 数据目录
	Level0Size       uint32 // 0 层的 所有 SsTable 文件大小总和的最大值，单位 MB,超过此值，该层 SsTable 将会被压缩到下一层
	PartSize         uint32 // 每层中 SSTable 表数量的阈值，超过此值，该层 SSTable 将会被压缩到下一层
	Threshold        uint32 // 内存表中 kv 的最大数量。超出该阈值内存表将会被保存到 SSTable 中
	CheckInterval    uint32 // 检查内存树的时间间隔
	CompressInterval uint32 // 压缩时间间隔
}

var once *sync.Once = &sync.Once{}
var config Config

func Init(con Config) {
	once.Do(func() {
		config = con
	})
}

func GetConfig() Config {
	return config
}
